#ifndef ZMODULESETTINGSDOM_H
#define ZMODULESETTINGSDOM_H

#include <ZModuleSettings.h>
#include <QtXml>

class ZModuleSettingsDOM
{
private:
    bool loaded;
    QDomDocument document;
    QDomElement rootElement;
    QString lastError;

    QDomElement createModuleNode(const ZModuleSettings& settings);
    QDomElement createNetworkNode(const QString& networkId);

public:
    ZModuleSettingsDOM();
    bool load(const QString& configFileName);
    ZModuleSettings get(const QString& moduleName);
    bool set(const QString& moduleName, const ZModuleSettings& settings);
    bool remove(const QString& moduleName);
    bool save(const QString& configFileName);
    bool isLoaded() const { return loaded; }
    QString generate();
    const QString& getLastError() const { return lastError; }
};

#endif // ZMODULESETTINGSDOM_H
